home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4.zip / Atari Forever 4.iso / SERIE_AI / AI_059 / FPUCHECK / README.TXT < prev   
Text File  |  1998-03-14  |  15KB  |  299 lines

  1. FPU-Check 1.44ß
  2. ---------------
  3.  
  4. (Dear english reader!
  5.  I'm sorry, but until now there is no full english description of "FPU-Check"
  6.  available. "FPU-Check" is a program to check the reliability of the 
  7.  floating point unit (FPU) of your Atari TT, or any other Atari computer 
  8.  which is equipped with a Line-F floating point coprocessor, including
  9.  the Falcon and accelerator boards for the ST series. 
  10.  The dialog box is held in english and, I hope so, is easy to use. If you 
  11.  have problems with "FPU-Check" please contact me via email: 
  12.                   sk@lumumba.shnet.org   (Stefan Krey))
  13.  
  14. Fuer die deutschsprachigen Leser:
  15.  
  16. 0. Allgemeines
  17.  
  18. FPU-Check 1.0 ist eigentlich als "Quick-Hack" (Puristen würden sagen, das
  19. ist es immer noch:-) in einer Zeit des ungeduldigen Wartens auf die letzten
  20. Bauteile meiner PAK-68/3 entstanden. In dieser Zeit verfolgte ich ausserdem
  21. die rege Diskussion in 'maus.sys.atari.hardware' über dieses Projekt und
  22. las des öfteren von FPU-Problemen, 11 Bomben (Line-F-Exception) etc.,
  23. insbesondere bei tuning-Versuchen auf Taktfrequenzen >32 MHz. Da es m.W.
  24. noch kein Programm gab, mit dem man die FPU richtig fordern konnte und
  25. das aufgetretene Fehler, Rechenfehler wie Exceptions, im Klartext zurück-
  26. meldete, habe ich mich darangesetzt ein solches zu schreiben. Die Fraktal-
  27. und Raytrace-Programme mit FPU-Unterstützung sind zwar immer ein guter
  28. Test für die FPU, aber Zuverlässigkeitsaussagen lassen sich schwer treffen,
  29. wenn das Programm sich beim ersten Fehler mit Bombenwurf verabschiedet.
  30.  
  31. FPU-Check fängt die auftretenden FPU-Exceptions ab und meldet sie im
  32. Klartext, zusammen mit dem Namen des aktuellen Tests, sodaß man evtl.
  33. feststellen kann, ob Fehler nur bei bestimmten Routinen auftreten. Im
  34. 'Handbetrieb' hat man bei einem Fehler die Wahl, ob man mit dem nächsten
  35. Test fortfahren oder den Testlauf beenden möchte. Läßt man ein Logfile
  36. ausgeben, so wird grundsätzlich der komplette Testlauf absolviert und
  37. eventuelle Fehler werden protokolliert. Das gilt allerdings nicht für
  38. die 'ganz harten' Fälle wie Bus- und Adreßfehler, sie werden zwar auch
  39. abgefangen, führen aber immer zur Beendigung des Testlaufs, da in den
  40. meisten Fällen kein Weiterarbeiten mehr möglich ist.
  41.  
  42.  
  43. 1. Funktionen
  44.  
  45.   FPU-Type    :  gibt den Typ der gefundenen FPU aus. Dient nur zur Unterscheidung
  46.                  der beiden Typen 68881 und 68882. Die Angabe 'Line-F' ist
  47.                  eigentlich überflüssig, da mit diesem Programm nur Line-F-FPU's
  48.                  getestet werden können.
  49.  
  50.                  Wer sich nicht ganz sicher ist, vor was für einem Rechner er sitzt,
  51.                  der kann sich auch mit dem beiliegenden Progrämmchen CPUFPU.PRG
  52.                  Klarheit verschaffen.
  53.  
  54.   RealMath,
  55.   TrigLog     :  Die bekannten Hochsprachen-Benchmarks der c't, allerdings
  56.                  um den Faktor 10 gestreckt! Zeitmessung für
  57.                  Geschwindigkeitsvergleiche. Rechenfehler werden gemeldet!
  58.  
  59.   Fractal,
  60.   SinCos      :  Die Ausführungszeit dieser Routinen wird ebenfalls für
  61.                  Benchmarkzwecke ausgegeben.
  62.                  'Fractal' zeigt den Ausschnitt Re(z)=-1.257231..-1.255960
  63.                                                 Im(z)= 0.03024525..0.03151625
  64.                  der Mandelbrot-Menge bei max. 211 Iterationen. Berechnet wird
  65.                  der Ausschnitt in einfacher Genauigkeit. Die Iterations-
  66.                  routine wurde in Assembler codiert.
  67.  
  68.                  SinCos zeigt den seltsamen Attraktor der Iteration
  69.                  x <- cos(y) - sin(a*x)
  70.                  y <- x + y
  71.                  Mit dem Parameter a nahe bei pi. Es werden 50000 Iterationen
  72.                  durchlaufen.
  73.  
  74.                  Aufgrund der Vielzahl der FPU-Operationen, ist es sehr
  75.                  wahrscheinlich, daß bei fehlerhaft arbeitender FPU auch
  76.                  ein Fehler entdeckt wird. Außerdem versehen sie die
  77.                  ansonsten langweiligen Testläufe mit ein wenig
  78.                  'Augenschmaus'. Rechenfehler werden hier nicht automatisch
  79.                  erkannt, sollten aber im Bild sichtbar sein, wenn es nicht
  80.                  nur ein Pixel ist. Exceptions werden natürlich sofort
  81.                  gemeldet. Im Fractal-Test zeigen sich Fehler meist durch
  82.                  große flächig-schwarze Gebiete. Im Extremfall wird nur
  83.                  schwarz gezeichnet.
  84.  
  85.                  Diese beiden Tests sind jetzt ab Version 1.42ß abschaltbar,
  86.                  da sie sehr lange dauern und bei hartnäckigen Fehlern sonst
  87.                  ein zügiges 'debuggen' verhindern.
  88.  
  89.   Performance :  Diese Anzeige wurde in der Version 1.42ß grundlegend
  90.                  überarbeitet. Es wird nur noch einmal am Anfang der Tests
  91.                  die Performance gemessen und nicht mehr für jeden Test
  92.                  einzelnd. Geeicht wurde die Anzeige jetzt mit meiner 48 MHz
  93.                  PAK/3 mit 68882. Die MHz-Anzeige ist immer noch nicht ganz
  94.                  ernst zu nehmen, sondern nur als Benchmark zu gebrauchen.
  95.                  Bei einer PAK/2 werden z.B. prinzipbedingt zu kleine
  96.                  Werte gemessen, hier macht sich der Level-2-Cache der
  97.                  PAK/3 bemerkbar. Die Performance-Anzeige wurde jetzt mit
  98.                  eingeschaltetem-Cache geeicht!
  99.  
  100.   Check       :  Hier wird der Name des aktuell laufenden Tests eingeblendet.
  101.                  Es werden fast alle mathematischen Operationen überprüft.
  102.                  Zwangsläufig natürlich auch die Datentransportbefehle. Ein
  103.                  paar Programmsteuerbefehle (Vergleiche, Sprünge) kommen
  104.                  im 'Fractal'-code zum Einsatz.
  105.  
  106.   Last Error  :  Gibt den letzten gefundenen Fehler im Kurztext aus.
  107.  
  108.   Tests       :  Zählt die absolvierten Tests.
  109.  
  110.   Errors      :  Zählt die gefundenen Fehler.
  111.  
  112.   Loops       :  Für Langzeittests. Man kann eine Anzahl von Testläufen
  113.                  vorgeben, die den Rechner auch mal über Nacht beschäftigen
  114.                  können, um ein ausführliches Fehlerprotokoll zu bekommen.
  115.                  Die Schleife kann vorzeitig mit einem Maus-Button-Druck
  116.                  oder mit einer der Tasten CTRL, Shift, Alt. zwischen(!)
  117.                  den Tests abgebrochen werden.
  118.  
  119.   Logfile     :  Ebenfalls für Langzeittests. Gefundene Fehler werden nicht
  120.                  mit einer Alertbox angezeigt, sondern in einem File mit
  121.                  Datum und Uhrzeit protokolliert.
  122.  
  123.   Cache       :  Der Cache des 68020/30 kann hiermit ein- bzw. ausgeschaltet
  124.                  werden.
  125.  
  126.   Start       :  Startet den Testlauf.
  127.  
  128.   Quit        :  Beendet das Programm.
  129.  
  130.   QuickTest   :  Führt einen Schnelltest der FPU-Funktionen durch.
  131.  
  132.   INFO-Button :  Halt das übliche. Insbesondere das...
  133.  
  134.  
  135. 2. Copyright
  136.  
  137.    Dieses Programm darf zu nicht kommerziellen Zwecken frei kopiert und
  138.    weitergegeben werden.
  139.  
  140.  
  141. 3. Schlußbemerkung
  142.  
  143.    Als Autor bin ich natürlich sehr an Erfahrungen mit diesem Programm
  144.    interessiert. Insbesondere, ob es bei wirklich fehlerhaften FPU's so
  145.    funktioniert wie es soll, oder ob es trotzdem noch zu katastrophalen
  146.    Abstürzen kommt. In diesem (und nur in diesem;-) Zusammenhang stellte
  147.    es sich als nachteilig heraus, daß ich zwei einwandfreie FPU's besitze,
  148.    sodaß ich Fehler nur simulieren konnte.
  149.  
  150.    Eigentlich ist der obige Absatz inzwischen hinfällig geworden, denn
  151.    mittlerweile konnte ich eine nichtfunktionierende FPU live erleben (s.u.)
  152.    und ich muß sagen, daß FPU-Check zu meiner vollsten Zufriedenheit
  153.    funktioniert. Sollte es dennoch Probleme mit FPU-Check geben, bitte
  154.    ich um Benachrichtigung.
  155.  
  156.    Auch Verbesserungsvorschlägen gegenüber bin ich aufgeschlossen, nur
  157.    am grundlegenden Aufbau des Programms werde ich nicht mehr viel ändern.
  158.  
  159.    Also: Bitte meldet Euch bei Problemen mit FPU-Check! Vielleich hilft das
  160.    dann auch anderen.
  161.  
  162.  
  163. 4. Ergänzungen
  164.  
  165.    Als zusätzlichen Test kann ich noch das Programm "Ikarus" von
  166.    Christoph Zwerschke @KA empfehlen.
  167.    Download in:     Maus KA und MTK
  168.    Es benutzt ausgiebig die FPU, stürzt allerdings beim ersten Fehler
  169.    ab.
  170.  
  171.    FPU-Check gibt's in der aktuellen Version immer in den Mailboxen
  172.    Galactica: 07151 908549
  173.    Mars-Box : 040 76621205
  174.    Auf Wunsch auch uuencoded per mail.
  175.  
  176.    zur V. 1.41: Es werden jetzt die Magic-Dials von Peter Hellinger benutzt,
  177.                 daher jetzt cross-check-buttons und Deaktivierung des Hinter-
  178.                 grunddialoges. Leider ist dadurch das Programm bedeutend
  179.                 größer geworden, ohne an Funktionalität zu gewinnen. Wen
  180.                 das stört, der möge weiterhin die V. 1.40 benutzen.
  181.                 Die Maus wird jetzt zwingend bei Fehlermeldungen eingeschaltet,
  182.                 damit Dialoge auch beantwortet werden können.
  183.                 Zwei Nachkommastellen werden bei der Reliability-
  184.                 (=Zuverlässigkeits-) Angabe im Logfile ausgegeben, damit
  185.                 dort bei seltenen Fehlern nicht 100% steht. Kleinere
  186.                 Schönheitskorrekturen.
  187.  
  188.    zur 1.42ß:   Änderung der Performance-Anzeige (s.o).
  189.                 "Fractal-" und "SinCos"-Test sind jetzt abschaltbar.
  190.                 Zusätzlich wurde ein "Quicktest" aufgenommen für
  191.                 Tests bei ganz harten Fehlern, die sich sofort zeigen.
  192.                 Angesichts des Pentium-FDIV-Fehlers habe ich noch drei
  193.                 Rechengenauigkeits-Tests aufgenommen. Werden regelmäßig
  194.                 Fehler in den Tests "Accurac1"..."Accurac3" gemeldet, so
  195.                 sollte man überprüfen, ob nicht ein Pentium anstelle einer
  196.                 68881/2-FPU eingebaut ist;-)
  197.                 Auch alle anderen Tests reagieren jetzt wesentlich
  198.                 empfindlicher auf Rechenfehler.
  199.                 Dies ist eine öffentliche beta-Version. Ich habe etliche
  200.                 umfangreiche Änderungen unternommen, deren Auswirkungen
  201.                 ich bis jetzt noch nicht vollständig testen konnte.
  202.                 FPU-Check läuft unter MagicMac.
  203.  
  204.    zur 1.43ß:   T. Tempelmann hatte in den Assemblerroutinen einige nicht
  205.                 restaurierte Register entdeckt. Das ist jetzt behoben.
  206.                 Eventuell läuft FPU-Check jetzt auf der Medusa -- muß noch
  207.                 getestet werden. Zum "ß" siehe Version 1.42ß.
  208.  
  209.    zur 1.44ß:   Nur kleinere kosmetische Korrekturen im Code.
  210.                 Zum "ß" siehe Version 1.42ß.
  211.  
  212. 5. Mit FPU-Check gefundene FPU-Fehler
  213.  
  214.    Inzwischen kann ich bereits von Erfahrungen mit FPU-Check berichten:
  215.  
  216.    - Der Rechner eines Freundes erzeugte einen Bus-Error beim Bewegen der
  217.      Maus während der FPU-Check-Testläufe. Die FPU sitzt in einer PAK/3.
  218.      Als Übeltäter wurde inzwischen die 68020/30-Version von "Petra"
  219.      entlarvt.
  220.  
  221.    - Leider war das noch nicht alles. Derselbe Rechner hat immer noch
  222.      Probleme mit der FPU, die bis heute (25.08.96) nicht gelöst werden
  223.      konnten. Nach einer relativ kurzen Aufwärmzeit (ca. 5..10 min.)
  224.      treten sehr häufig Rechenfehler und auch Exceptions auf. Die
  225.      Fehlerrate steigt, wie so oft, mit Erhöhung der Taktfrequenz.
  226.      Ich könnte hier sehr viel darüber erzählen, was wir alles versucht
  227.      haben, den Fehler zu finden: Z.B. kompletter Austausch der Atari-
  228.      Custom-Chips, ebenso der PAK-Bestückung etc., nichts hat geholfen.
  229.  
  230.      Der "Witz" an der Sache ist, daß diese PAK in meinem Rechner
  231.      fehlerfrei läuft und meine PAK in seinem Rechner ebenfalls. D.h.
  232.      weder seine PAK noch sein Mainboard können einen ernsthaften Defekt
  233.      aufweisen. Wir sind hier im Moment ratlos. FPU-Check hat uns aber
  234.      wertvolle Hilfe bei der Fehlereingrenzung geleistet.
  235.  
  236.      Mittlerweile hat er eine FRAK (Fast-RAM-Karte) auf seine PAK gesetzt
  237.      und erstaunlicherweise traten die Fehler bei FPU-Check im Fast-RAM
  238.      nicht mehr auf, blieben aber im ST-RAM unverändert. Demnach scheint
  239.      der PAK/FRAK-Turm einwandfrei zu funktionieren, nur das Zusammenspiel
  240.      mit dem ST-Mainboard klappt nicht.
  241.  
  242.    - Bei einem TT mit einer mit 40 MHz getakteten FPU traten nach ca.
  243.      40 min. sporadisch Rechenfehler im 'Realmath' oder 'Triglog'-Test
  244.      auf. Wohlgemerkt reine Rechenfehler und keine Exceptions! Aufgrund
  245.      der Zufälligkeit und des späten Auftretens nach längerer Rechenzeit
  246.      habe ich auf einen thermischen Fehler getippt.
  247.  
  248.    - Wie mir gemeldet wurde, läuft FPU-Check bis jetzt noch nicht auf
  249.      der Medusa mit der im 68040 integrierten FPU. Ich werde mich drum
  250.      kümmern.
  251.  
  252.    - Inzwischen ist auch klar warum: Indem ich mit FPU-Check die
  253.      FPU-Exceptions abfange, hänge ich den Exception-Handler zur
  254.      Softwareemulation der transzendenten FP-Operationen aus. Wie
  255.      gesagt, ich werde mich darum kümmern. Bemerkenswert ist noch,
  256.      daß FPU-Check auf einem 68040-MAC unter MagicMac läuft und zwar
  257.      mit der Softwareemulation, die der Medusa mitgeliefert wird.
  258.      MagicMac verschiebt die Exception-Vektoren, sodaß es nicht zu
  259.      einer Kollision zwischen FPU-Check und Emulator kommt. Dank
  260.      gebührt Thomas Tempelmann, der mir diesbezüglich weiterhalf.
  261.  
  262.      Mit der Version 1.43ß besteht zumindest die Chance, daß sie jetzt
  263.      auf der Medusa läuft. Ich bitte alle Medusa-Besitzer um Mitteilung,
  264.      daher das 'ß'.
  265.  
  266.    - Wieder ein TT: Mit FPU-Check 1.40 wurde ein TT getestet und alle
  267.      23 Tests, bis auf die mit Grafikausgabe, schlugen fehl. Der TT
  268.      soll ungetuned im Originalzustand gewesen sein, mehr wurde mir
  269.      nicht mitgeteilt.
  270.  
  271.    - (Noch ein TT) Ich bekam folgende Fehlermeldung:
  272.      "Ich besitze einen TT030, der bis vor kurzem noch mit 4 Mbyte ST-Ram
  273.      ausgestattet war (0 TT-Ram), Dein Programm FPU-Check 1.4 arbeitete bis
  274.      dahin auch ohne Erkennung von Fehlern. Seit ein paar Tagen habe ich nun
  275.      eine original TT-Ram Karte (4Mbyte) eingebaut, und mehr durch Zufall noch
  276.      mal Dein Programm angestartet.
  277.  
  278.      Siehe da: "inexact result, err=4.06E-003" beim Test "Realmath".
  279.  
  280.      Und der Fehler ist reproduzierbar."
  281.  
  282.    - Ich persönlich teste dieses Programm mit einem Mega ST2 (4MB) und
  283.      einer PAK/3 mit 48 MHz, sowie einem Mega ST1 (2MB) mit einer PAK/2
  284.      und 20 MHz 68882. Zum Glück lief es bisher immer einwandfrei durch.
  285.      (25.08.96): Die PAK/2 des "Testequipments" wurde in der Zwischenzeit
  286.      durch eine PAK/3-020 mit 68882 bei 16 MHz ersetzt.
  287.  
  288.      TT-Kenner sollten sich mal mit mir in Verbindung setzen, ob
  289.      Serienfehler bei der FPU-Ansteuerung in diesen Geräten bekannt
  290.      sind.
  291.  
  292.    Ich bin unter der email-Adresse:
  293.  
  294.                            sk@lumumba.shnet.org   (Stefan Krey)
  295.  
  296.    zu erreichen. Die alte Adresse bitte nicht mehr benutzen!
  297.  
  298.    Stefan Krey
  299.